1. Field of the Invention
The invention relates to context learning by software agents, for example, it may be used by embedded game agents in a gaming system during play of the game.
2. Related Art
In a computer simulation, especially in a computer game that attempts to present a fantasy world (i.e., to create and simulate a variant world in which there are at least some fantasy or fictional aspects), there may be numerous agents within the game, each of which has independent actions it can perform. One set of those agents is controlled by players (herein sometimes called “player characters,” and herein sometimes called “human users”), while other sets of those agents are controlled by the game software (herein sometimes called “non-player characters”). It is also possible that the selection of which of those agents is player characters and the selection of which of those agents are non-player characters may change from time to time as the game progresses, perhaps as the player chooses to control different characters.
One problem with such systems is that it is difficult to make non-player characters learn about the game in real-time (that is, as it is played) or in response to an exemplar such as a player character (that is, in response to choices made by a human user). There are several possible sources of potential learning, including for example, from current player characters, from records of play of player characters, from the non-player characters' own experiences, and from records of play of other non-player characters. It would be advantageous if non-player characters may become more like the player characters in their behavior, as this would lead to a richer and possibly more challenging game environment. For a first example, if player characters are imaginative, intelligent, realistic, or robust, it would be advantageous for non-player characters to exhibit at least some of these qualities, or to exhibit these qualities to at least some of the degree that player characters do. For a second example, if player characters exhibit one or more elements of oddity or quirkiness, it would be advantageous for non-player characters to exhibit at least some of those elements, or similar elements of oddity or quirkiness, or other aspects of the players' personality, as expressed through those players' playing style.
It would also be advantageous if non-player characters could learn in real time (that is, could modify their behavior and their response to various stimuli during actual play) from at least some of these possible sources of potential learning, including learning from player characters, from other non-player characters, or from their interaction with the game environment. More specifically, it would also be advantageous if each distinct player character can “teach” (for example, serve to model behavior for) its own set of non-player characters. Those sets of non-player characters may overlap, such as when the non-player characters learn the playing style of the player characters generally, or may be distinct, such as when the non-player characters are distributed into teams, each team of which learns the playing style of a specific player character during a specific time frame.
For a first example, if non-player characters could learn from a particular player character, that player may see their tactics and strategies, and possibly their personality, replicated and possibly amplified by a set of non-player characters (whether friendly non-player characters or enemy non-player characters). For a second example, if distinct teams of non-player characters could learn from multiple distinct player characters, those distinct player characters may each develop their own team of non-player characters, each team with its own particularized behavior and each team with its own leadership and cooperative strategies, in response to the ability or initiative of those player characters in training or re-training their respective teams.
In a first set of known systems, non-player characters have a set of pre-programmed behavior, which they follow no matter who the player is, how the player acts, or how the game progresses. (1) The set of possible actions can be pre-programmed by the game designer, with a known set of actions to be performed in known possible circumstances. This is sometimes called a “script.” (2) More generally, a script may include random or pseudorandom selection of actions, in response to parameters selected by the game designer. (3) More generally, the parameters selected by the game designer can be adjusted to cause the global apparent behavior of the non-player character to change with time.
While these known methods generally achieve the goal of providing non-player characters with actions to take in each context expressed within the game, they have drawbacks. In general, the non-player characters do not learn, in real-time, to behave like a player character, and with the result that they typically remain less like player characters and with the effect that they typically remain less imaginative, intelligent, realistic, and robust than nearly all player characters. Lack of ability to learn has the effect that non-player characters are clearly inferior to, and do not share any salient characteristics of, the personality of any individual user.
In a second set of systems, known in some academic circles, a non-player character may maintain a model of how to behave (sometimes herein called a “character model of behavior” or a “behavior model”), and attempt to update that model in response to aspects of the game environment. (In this context, a “model” refers to a set of internal state indicative of information or techniques possibly learned by the non-player character; for example, if the non-player character were using a neural network to learn behavior, that model would include the connectivity and weights assigned to nodes and edges in that neural network, as well as the particular topology of that neural network, and methods of using the neural network to generate responses to queries.) For example, a non-player character may update that model in response to actions taken by a player character (for the purpose attempting to imitate that player character), or may update that model in response to experiences in the game environment (for the purpose of attempting to learn from its mistakes).
These known systems have two substantial drawbacks if they are to be used at run-time with known game systems: (1) they consume far too much in the way of computing and memory resources, in response to the very large number of possible contexts, and (2) models being learned in real-time are typically not sufficiently robust to be created and used in the course of actual game play.
A further drawback of known methods is that they generally involve substantial knowledge about both (1) machine learning techniques, and (2) sets of derived features likely to be valuable for machine learning, each of which has the effect, and in combination which have the effect, of involving substantial effort, time, and possibly monetary resources for the game designer to implement. It would be advantageous to provide a system in which non-player characters, or other actors, can learn from player characters, without requiring substantial investment of effort, money, or time by the game designer.
Accordingly, it would be advantageous to provide a method and system not subject to drawbacks of known systems.